package Entity;

import java.io.Serializable;
import java.util.*;

import javax.persistence.*;

@Entity
@Table (name = "Sucursales")
public class SucursalEntity implements Serializable{

	private static final long serialVersionUID = 1L;
	
	@Id
	@Column (name = "idSucursal", nullable = false)
	private int idSucursal;
	
	@Column (name = "nombre", length = 100)
	private String nombre;
	
	@Column (name = "ubicacion", length = 100)
	private String ubicacion;
	
	@Column (name = "capacidad")
	private int capacidad;
	
	@OneToMany
	@JoinColumn (name = "idSucursal") 
	private List<CajaEntity> caja = new ArrayList<CajaEntity>();
	
	@OneToMany
	@JoinColumn (name = "idSucursal")
	private List<CartaEntity> carta = new ArrayList<CartaEntity>();
	
	@ManyToMany 
	@JoinTable (name = "AreaSucursal", joinColumns = {@JoinColumn (name = "idSucursal")}, inverseJoinColumns = { @JoinColumn(name = "idArea") })
	private List<AreaEntity> areas = new ArrayList<AreaEntity>();
	
	@OneToMany
	@JoinColumn (name = "idSucursal")
	private List<TareaEntity> tareas = new ArrayList<TareaEntity>();
	
	@OneToMany
	@JoinColumn (name = "idSucursal")
	private List<ReservaEntity> reservas = new ArrayList<ReservaEntity>();

	@OneToOne
	@JoinColumn (name = "idDeposito")
	private DepositoRestoEntity Deposito;
	
	
	public DepositoRestoEntity getDeposito() {
		return Deposito;
	}

	public void setDeposito(DepositoRestoEntity deposito) {
		Deposito = deposito;
	}

	public int getIdSucursal() {
		return idSucursal;
	}

	public void setIdSucursal(int idSucursal) {
		this.idSucursal = idSucursal;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getUbicacion() {
		return ubicacion;
	}

	public void setUbicacion(String ubicacion) {
		this.ubicacion = ubicacion;
	}

	public int getCapacidad() {
		return capacidad;
	}

	public void setCapacidad(int capacidad) {
		this.capacidad = capacidad;
	}

	public List<CajaEntity> getCaja() {
		return caja;
	}

	public void setCaja(List<CajaEntity> caja) {
		this.caja = caja;
	}

	public List<CartaEntity> getCarta() {
		return carta;
	}

	public void setCarta(List<CartaEntity> carta) {
		this.carta = carta;
	}

	public List<AreaEntity> getAreas() {
		return areas;
	}

	public void setAreas(List<AreaEntity> areas) {
		this.areas = areas;
	}

	public List<TareaEntity> getTareas() {
		return tareas;
	}

	public void setTareas(List<TareaEntity> tareas) {
		this.tareas = tareas;
	}

	public List<ReservaEntity> getReservas() {
		return reservas;
	}

	public void setReservas(List<ReservaEntity> reservas) {
		this.reservas = reservas;
	}
}
